import { var_split, string_function } from "../utils";



export class HandlerCameraCaseToSnakeCase implements IStringHandler {

    convertStr(text: string): string {
        // let text_list = var_split(text);
        let is_first = [true];
        return string_function(text, (p: string) => {
            // let convert_ele = (_ele: string) => {
            //     if (/[_a-zA-Z]+/.test(_ele)) {
            //         if (is_first[0]) {
            //             is_first[0] = false;
            //             return _ele[0].toLowerCase() + _ele.slice(1);
            //         }
            //         else {
            //             return _ele[0].toUpperCase() + _ele.substr(1);
            //         }
            //         // if (_ele.length > 1) {
            //         //     return _ele[0].toUpperCase() + _ele.substr(1);
            //         // } else {
            //         //     return _ele.toUpperCase();
            //         // }

            //     } else {
            //         return _ele
            //     }
            // }
            // let char_array = p.split("_")
            // let convert_array = []
            // for (let ele of char_array) {
            //     convert_array.push(convert_ele(ele));
            // }
            // return convert_array.join("").slice(1);
            let out = []
            for (let ch of p) {
                if (/[A-Z]/.test(ch)) {
                    out.push("_" + ch.toLowerCase());
                } else {
                    out.push(ch);
                }
            }
            return out.join("");



        });

    }
}